home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / a_man / cat1 / sesdaemon.z / sesdaemon
Encoding:
Text File  |  2002-10-03  |  17.7 KB  |  331 lines

  1.  
  2.  
  3.  
  4. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      sssseeeessssddddaaaaeeeemmmmoooonnnn - Fibre Channel Drive Enclosure Status/Configuration daemon
  10.  
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      sssseeeessssddddaaaaeeeemmmmoooonnnn _s_e_s_d_a_e_m_o_n-_o_p_t_i_o_n_s-_f_i_l_e
  14.  
  15.  
  16. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  17.      sssseeeessssddddaaaaeeeemmmmoooonnnn is a daemon which allows communication with attached fibre
  18.      channel drive enclosures; status is collected and re-configuration is
  19.      allowed.
  20.  
  21.      The low-level transport protocol is the industry standard SES (SCSI-3
  22.      Enclosure Services). See sssseeeessssmmmmggggrrrr((((1111MMMM)))) for details.
  23.  
  24.      The sssseeeessssddddaaaaeeeemmmmoooonnnn is normally started automatically during boot if sssseeeessssddddaaaaeeeemmmmoooonnnn
  25.      is cccchhhhkkkkccccoooonnnnffffiiiigggg'ed oooonnnn. One process containing 4 threads is started for each
  26.      instance of sssseeeessssddddaaaaeeeemmmmoooonnnn; the backend polling thread which handles polling
  27.      the drive enclosures for status, the frontend RPC thread which is
  28.      responsible for communication with user interfaces like sssseeeessssmmmmggggrrrr, an event
  29.      handler thread which handles FRU status change events, and a handler that
  30.      executes the client's commands. Each event results in a user configurable
  31.      callout shell script being executed. These scripts are user customizable.
  32.  
  33.  
  34. OOOOPPPPTTTTIIIIOOOONNNNSSSS
  35.      The _s_e_s_d_a_e_m_o_n-_o_p_t_i_o_n_s-_f_i_l_e is provided for customizing certain aspects of
  36.      sssseeeessssddddaaaaeeeemmmmoooonnnn operation. This file normally resides at
  37.      ////eeeettttcccc////ccccoooonnnnffffiiiigggg////sssseeeessssddddaaaaeeeemmmmoooonnnn....ooooppppttttiiiioooonnnnssss. The contents of the file is a list of
  38.      customizable variables and their values.
  39.  
  40.      PPPPoooollllllllPPPPeeeerrrriiiioooodddd     Specifies the time, in seconds, between successive polls
  41.                     of the SAN enclosures.  Status change detection is not
  42.                     interrupt driven so status changes will not be detected
  43.                     until the next poll period.
  44.  
  45.                     The challenge in selecting an optimal polling period is to
  46.                     find an interval that is short enough to find failures
  47.                     quickly and yet long enough to avoid adding a significant
  48.                     amount of traffic to the SAN.  Large or busy SAN's will
  49.                     require more time to execute a poll than smaller or less
  50.                     busy ones.  However some FRU failures can cause automatic
  51.                     enclosure shutdowns in as little as 2 minutes.
  52.  
  53.                     The default value is 66660000.
  54.  
  55.      EEEExxxxiiiittttNNNNooooCCCCttttllllrrrrssss    On startup, if no fibre channel controllers are found in
  56.                     the system and this is set to 1, all of the sesdaemon
  57.                     threads will terminate.  Changing it to 0 will let the
  58.                     threads run as usual whether controllers are present or
  59.                     not.  This may be useful in the event controllers will be
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  71.  
  72.  
  73.  
  74.                     added later via PCI hotswap inserts.  However, once added,
  75.                     an sssseeeessssmmmmggggrrrr ppppoooollllllll command must still be executed for
  76.                     sssseeeessssddddaaaaeeeemmmmoooonnnn to see the new controllers.  If the daemons have
  77.                     already exited and need to be restarted, run
  78.                     ////eeeettttcccc////iiiinnnniiiitttt....dddd////sssseeeessssddddaaaaeeeemmmmoooonnnn ssssttttaaaarrrrtttt.
  79.  
  80.                     The default value is 1111.
  81.  
  82.      PPPPrrrreeeeRRRReeeemmmmoooovvvvaaaallllCCCCaaaalllllllloooouuuutttt
  83.                     Specifies the pathname of the script to be executed just
  84.                     prior to performing a sssseeeessssmmmmggggrrrr rrrreeeemmmmoooovvvveeee command. The default
  85.                     value is ////uuuussssrrrr////lllliiiibbbb////sssseeeessssddddaaaaeeeemmmmoooonnnn////pppprrrreeeerrrreeeemmmmoooovvvveeee....CCCCOOOO.
  86.  
  87.      PPPPoooossssttttRRRReeeemmmmoooovvvvaaaallllCCCCaaaalllllllloooouuuutttt
  88.                     Specifies the pathname of the script to be executed
  89.                     immediately following the performance of a sssseeeessssmmmmggggrrrr rrrreeeemmmmoooovvvveeee
  90.                     command. The default value is
  91.                     ////uuuussssrrrr////lllliiiibbbb////sssseeeessssddddaaaaeeeemmmmoooonnnn////ppppoooossssttttrrrreeeemmmmoooovvvveeee....CCCCOOOO.
  92.  
  93.      PPPPoooossssttttIIIInnnnsssseeeerrrrttttiiiioooonnnnCCCCaaaalllllllloooouuuutttt
  94.                     Specifies the pathname of the script to be executed
  95.                     immediately following the performance of a ffffsssseeeessssmmmmggggrrrr iiiinnnnsssseeeerrrrtttt
  96.                     command. The default value is
  97.                     ////uuuussssrrrr////lllliiiibbbb////sssseeeessssddddaaaaeeeemmmmoooonnnn////ppppoooossssttttiiiinnnnsssseeeerrrrtttt....CCCCOOOO.
  98.  
  99.      SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt
  100.                     Specifies the pathname of the script to be executed
  101.                     following a FRU status change. The default value is
  102.                     ////uuuussssrrrr////lllliiiibbbb////sssseeeessssddddaaaaeeeemmmmoooonnnn////ssssttttaaaattttcccchhhhaaaannnnggggeeeedddd....CCCCOOOO.
  103.  
  104.      DDDDeeeebbbbuuuuggggLLLLeeeevvvveeeellll     Specifies the "verbosity" of sssseeeessssddddaaaaeeeemmmmoooonnnn. The default value
  105.                     is 0000.
  106.  
  107.  
  108. CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN OOOOFFFF EEEEVVVVEEEENNNNTTTT CCCCAAAALLLLLLLLOOOOUUUUTTTT SSSSCCCCRRRRIIIIPPPPTTTTSSSS
  109.      The sssseeeessssddddaaaaeeeemmmmoooonnnn event handler executes one or more callout scripts in
  110.      response to a FRU status change or user initiated reconfiguration. Each
  111.      time a script is executed, 10 arguments are passed to it which a user can
  112.      use to customize said scripts. For example, the SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt
  113.      script can be modified to send mail to a system administrator's chatty
  114.      pager should a fault be detected. The arguments are as follows:
  115.  
  116.  
  117.      _1 - _h_o_s_t _n_a_m_e  A character string specifying the name of the host machine
  118.                     where the FRU status change was detected.
  119.  
  120.      _2 - _c_a_l_l_o_u_t _t_y_p_e
  121.                     A character string specifying the callout type. The
  122.                     possible values are _I_N_F_O, _R_E_C_O_N_F_I_G and _F_A_I_L_U_R_E. The types
  123.                     can be viewed in increasing priority of importance.  The
  124.                     _I_N_F_O type is used when the FRU status change is
  125.                     informational and little or no system administrator
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  137.  
  138.  
  139.  
  140.                     intervention is needed. An example of an informational
  141.                     state change is a disk FRU transitioning from _n_o_t _p_r_e_s_e_n_t
  142.                     to _O_K following the insertion of of a previously absent
  143.                     disk drive. The _R_E_C_O_N_F_I_G type is used following a
  144.                     configuration change which may be of interest to the
  145.                     system administrator. An example of a reconfiguration
  146.                     state change is a disk FRU transitioning from _O_K to
  147.                     _N_O_T__P_R_E_S_E_N_T following the execution of a sssseeeessssmmmmggggrrrr rrrreeeemmmmoooovvvveeee
  148.                     command. The _F_A_I_L_U_R_E type is used when system
  149.                     administrator intervention is needed due to an unexpected
  150.                     FRU failure.
  151.  
  152.      _3 - _t_i_m_e _s_t_a_m_p A character string specifying the time at which the status
  153.                     change occurred.
  154.  
  155.      _4 - _c_h_a_n_n_e_l _I_D A numerical character string specifying the channel number
  156.                     on which the state change was detected.
  157.  
  158.      _5 - _e_n_c_l_o_s_u_r_e _I_D
  159.                     A numerical character string specifying the fibre channel
  160.                     drive enclosure on which the state change was detected. Is
  161.                     only specified for the case of the SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt.
  162.                     It is set to -1 for other callouts.
  163.  
  164.      _6 - _F_R_U _t_y_p_e   A character string specifying the type/class of FRU for
  165.                     which the status change is being reported. Possible values
  166.                     are _D_I_S_K (for disk FRUs), _P_S (for power supply FRUs), _F_A_N
  167.                     (for fan FRUs), _T_E_M_P for temperature, _A_L_A_R_M for alarm, and
  168.                     _L_C_C (for Link-Control-Card FRUs).
  169.  
  170.      _7 - _F_R_U _I_D     A numerical character string specifying the ID of the FRU
  171.                     in an enclosure which underwent the state change.  This
  172.                     would be the slot number, bay number, or LCC number in the
  173.                     enclosure.
  174.  
  175.      _8 - _F_R_U _N_A_M_E   This is the identifier of the FRU, which in the case of
  176.                     drives is the world wide name in hex.
  177.  
  178.      _9 - _S_t_a_t_e _t_r_a_n_s_i_t_i_o_n _f_r_o_m _s_t_a_t_e
  179.                     A character string specifying the from state of the FRU
  180.                     state transition. Possible values are _O_K, _O_F_F, _F_A_I_L_E_D,
  181.                     _N_O_T-_P_R_E_S_E_N_T,  _O_F_F if the FRU is not ready, and _U_N_S_U_P for
  182.                     not supported FRU types. It is only specified for the case
  183.                     of the SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt. It is set to -1 for other
  184.                     callouts.
  185.  
  186.      _1_0 - _S_t_a_t_e _t_r_a_n_s_i_t_i_o_n _t_o _s_t_a_t_e
  187.                     A character string specifying the to state of the FRU
  188.                     state transition. Possible values are the same as the from
  189.                     state.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  203.  
  204.  
  205.  
  206. EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
  207.      The following is an example of a SSSSttttaaaattttuuuussssCCCChhhhaaaannnnggggeeeeddddCCCCaaaalllllllloooouuuutttt C-shell script
  208.      which may be used to send mail to a system administrator following the
  209.      detection of a FRU failure.
  210.  
  211.      #! /bin/csh -f
  212.      #
  213.      # If the status change is a failure, send mail to system
  214.      # administrator.
  215.      #
  216.  
  217.      set TMP="/tmp/statchanged_$$"
  218.  
  219.      if ("$2" == FAILURE) then
  220.           echo "$6 #$7 in enclosure $5 on channel $4 on host $1 FAILED at $3" > $TMP
  221.           Mail -s "FRU Failure" root@alpha.centauri.com < $TMP
  222.           /bin/rm -f $TMP
  223.      endif
  224.  
  225.  
  226.  
  227. LLLLIIIIMMMMIIIITTTTAAAATTTTIIIIOOOONNNNSSSS
  228.      If a communication path fails, the daemon will automatically try
  229.      alternate paths to the other SES capable devices.  However, driver
  230.      retries before returning an error can make this a lengthy process.
  231.  
  232.      Losing the last SES drive in an enclosure or losing the link to an
  233.      enclosure may be logged as an LCC failure.
  234.  
  235.      Enclosures which dont set their enclosure ID in their SES configuration
  236.      page will be assigned an enclosure ID from the worldwide name of the
  237.      first SES drive the daemon locates in the enclosure. Once the id is
  238.      assigned, it will not be changed by the daemon if the enclosure
  239.      configuration changes.  However on later runs, this will result in the
  240.      enclosure having a different ID.
  241.  
  242.      These utilities are not able to handle soft addressing.  Proper SAN
  243.      configuration is critical to their proper operation.
  244.  
  245.      The Xyratex 16 slot enclosure must use addressing mode 0 in 1x16
  246.      configurations and mode 2 in 2x8 configurations.  Also be very careful if
  247.      mixing 1x16 and 2x8 configured enclosures on the same loop.  Extra care
  248.      is required when setting the enclosure id's to prevent overlapping the
  249.      target alpa ranges.  If that happens, the other enclosures on the loop
  250.      will switch to soft addressing.
  251.  
  252.      Not all enclosures support all capabilities of these utilities.
  253.  
  254.      Simulating failures may not result in exactly the same failure
  255.      notifications as actual failures.
  256.  
  257.      Due to dependencies on drive types, this utility only supports IBM and
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))                                                    sssseeeessssddddaaaaeeeemmmmoooonnnn((((1111mmmm))))
  269.  
  270.  
  271.  
  272.      SEAGATE disk drives.
  273.  
  274.      If a target assigns different worldwide names to each of its ports, each
  275.      port will be treated as an individual target.
  276.  
  277.  
  278. DDDDIIIIFFFFFFFFEEEERRRREEEENNNNCCCCEEEESSSS FFFFRRRROOOOMMMM FFFFCCCCAAAAGGGGEEEENNNNTTTT
  279.      Although the sssseeeessssddddaaaaeeeemmmmoooonnnn/sssseeeessssmmmmggggrrrr utilities are designed to be similar in
  280.      look and functionality, there are some important differences.  Here are
  281.      some of these:
  282.  
  283.      The arguments on the callouts are slightly different and if ffffccccaaaaggggeeeennnntttt
  284.      callout code is re-used, these should be carefully checked and
  285.      understood.
  286.  
  287.      The iiiinnnnsssseeeerrrrtttt and rrrreeeemmmmoooovvvveeee commands now make SOP_SCAN ioctls to the affected
  288.      controllers and the callout scripts run at the proper times.  iiiinnnnsssseeeerrrrtttt will
  289.      also run iiiiooooccccoooonnnnffffiiiigggg to make device files for the new devices.
  290.  
  291.      bbbbyyyyppppaaaassssssss and uuuunnnnbbbbyyyyppppaaaassssssss do not run the insert and remove callouts.
  292.  
  293.      sssseeeessssddddaaaaeeeemmmmoooonnnn does not accept off host command requests and this
  294.      configuration option has been removed.
  295.  
  296.      sssseeeessssddddaaaaeeeemmmmoooonnnn works with drives on private loops and fabrics.
  297.  
  298.  
  299. FFFFIIIILLLLEEEESSSS
  300.      /usr/bin/sesdaemon
  301.      /etc/config/sesdaemon.options
  302.      /etc/init.d/sesdaemon
  303.      /usr/lib/sesdaemon/postinsert.CO
  304.      /usr/lib/sesdaemon/preremove.CO
  305.      /usr/lib/sesdaemon/postremove.CO
  306.      /usr/lib/sesdaemon/statchanged.CO
  307.  
  308.  
  309. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  310.      chkconfig(1M), ioconfig(1M), scsiha(7), sesmgr(1M)
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.